home *** CD-ROM | disk | FTP | other *** search
-
- We have added a user extensible feature to the common lisp
- function format.
-
- For some applications, for example in maxima, it is very desirable
- to be able to define a new control character, so that
-
- (format t "~%The polynomial ~m is not zero" polynomial)
-
- would work. It is desirable to extend format itself, since then
- calls to the error and other functions which use format will work
- correctly. For example:
-
- (error "~%The polynomial ~m is not zero" polynomial)
-
-
- For an application to do this we would evaluate the following:
-
- (setf (get 'si::*indent-formatted-output* (char-code #\m)) 'maxima-print)
-
- (defun maxima-print (item stream colon atsign &rest l)
- colon atsign l ;ignoring these
- (internal-maxima-print item stream))
-
- Note this extension is case sensitive, so that to have this apply to
- capital M as well, the property for (char-code #\M) must be added as
- well.
-
- A call with "~:m" would make colon=1 and atsign=0.
- A call with "~@m" would make colon=0 and atsign=1.
-
- To Do:
- The &rest l is currently unused, a future addition will probably
- store into l the current column of the format output stream.
-
- This also implies that new print functions should return what they think is
- the new column. Since I believe that 98% of the current calls to format
- do not use column information in an important way, this is probably not worth
- the additional hair involved.
-
- Numeric args are not passed.
-
-
-